#include <stdio.h>
#pragma pack(16)
struct BBB {
    int num;//4
    char ch; //1
    char pa[3]; //3
    union {
        int a; //4
        float b; //4
    } myUnion;//这个union内存大小等于4
}b;

int main() {
    printf("%d\n", sizeof(b));
    //4+1+3+4=12 ; 到char pa[3]时候这时候正好到地址8，然后union的内存是4，对齐数，要求是它的整数倍所以正好从8开始，最终结果12。满足是对齐数4,1,4的倍数
    return 0;
}
